package com.xuelang.pipeline.artifact.app.resource;

import com.xuelang.pipeline.artifact.client.resource.enums.ArtifactToolEnum;
import com.xuelang.pipeline.artifact.domain.resource.ArtifactAttribute;
import com.xuelang.pipeline.artifact.domain.resource.ArtifactProxy;
import com.xuelang.pipeline.artifact.domain.resource.ArtifactTool;

import java.util.List;

/**
 * @author xiwen.zxg
 * @since 2024/7/11
 */
public interface InstanceRepositoryService {

    void createRepository(ArtifactToolEnum.ArtifactTypeEnum artifactType, String repositoryName, String artifactUuid);

    void createRepositoryWithGroupAndHosted(ArtifactToolEnum.ArtifactTypeEnum artifactType, String repositoryName, String artifactUuid);

    void deleteRepository(ArtifactTool artifactTool, ArtifactAttribute artifactAttribute);

    void listRespsitory();

    void createProxyRepository(ArtifactToolEnum.ArtifactTypeEnum proxyArtifactType, ArtifactProxy artifactProxy, List<String> proxyInstanceRepoNameList);

    void deleteProxyRepository(ArtifactToolEnum.ArtifactTypeEnum artifactType, String proxyInstanceRepoName);

}
